package main

import "fmt"

// 3-const 来定义枚举类型
const (
	// 可以在const() 添加一个关键字 iota，每行的iota都会累加1，第一行的iota默认值是0
	BEIJING  = 10 * iota // iota = 0
	SHANGHAI             // iota = 1
	SHENZHEN             // iota = 2
)

const (
	a, b = iota + 1, iota + 2 // iota = 0, a = 0 + 1 = 1; b = 0 + 2 = 2
	c, d                      // iota = 1, a = 1 + 1 = 2; b = 1 + 2 = 3
	e, f                      // iota = 2, a = 2 + 1 = 3; b = 2 + 2 = 4

	g, h = iota * 2, iota * 3 // iota = 3, g = 3 * 2 = 6; h = 3 * 3 = 9
	i, k                      // iota = 4, i = 4 * 2 = 8; k = 4 * 3 = 12
)

func main() {
	// 常量（只读属性）
	const length int = 10
	fmt.Println(length)

	//length = 100 // 常量是不允许修改的

	fmt.Println(BEIJING)  // 10 * 0 = 0
	fmt.Println(SHANGHAI) // 10 * 1 = 10
	fmt.Println(SHENZHEN) // 10 * 2 = 20

	fmt.Println(a, b) // 1 2
	fmt.Println(c, d) // 2 3
	fmt.Println(e, f) // 3 4
	fmt.Println(g, h) // 6 9
	fmt.Println(i, k) // 8 12

	// iota 只能够配合const() 一起使用，iota只有在const进行累加效果
	//2-var a int = iota
}
